
package com.cap.bts.crmdp.dealer.mars.dao;

import java.util.List;

import com.cap.bts.crmdp.dealer.mars.dto.ItemTypeInfoDto;
import com.cap.bts.crmdp.dealer.mars.dto.MarsEligibilityDto;
import com.cap.bts.crmdp.dealer.mars.dto.MessageNumDto;
import com.cap.bts.crmdp.dealer.redemption.domain.MemberPackageRedemption;
import com.cap.bts.framework.common.dao.IBaseDao;
import com.cap.bts.framework.common.exception.AppException;
import com.cap.bts.framework.common.util.Pager;

/**
 *
 */
public interface IMarsRedemptionDao extends IBaseDao<MemberPackageRedemption, Long> {
    
    public List<ItemTypeInfoDto> getItemTypeInfoListBySql(String sql,Pager pager) throws AppException; 
    
    /**
     * 
     * @Date        :      Nov 11, 2015
     * @param id
     * @return
     * @throws AppException
     */
    public List<ItemTypeInfoDto> getWeCareItemInfoByItemId(Long ticketLineid,ItemTypeInfoDto dto) throws AppException;
    
    /**
     * 
     * @Date        :      Nov 11, 2015
     * @param id
     * @return
     * @throws AppException
     */
    public List<ItemTypeInfoDto> getWeCareItemInfoByItemIdWithGroup(Long ticketLineid,ItemTypeInfoDto dto) throws AppException;
    
    /**
     * 
     * @Date        :      Nov 11, 2015
     * @param soNumber
     * @return
     * @throws AppException
     */
    public List<MemberPackageRedemption> getMemberPackageRedemptionBySoNumber(String soNumber) throws AppException;
    
    /**
     * 
     * @Date        :      Nov 11, 2015
     * @param soNumber
     * @return
     * @throws AppException
     */
    public List<MemberPackageRedemption> getUnUseMemberPackageRedemptionByPackageId(Long packageId) throws AppException;
    
    /**
     * @param packageId
     * @return
     * @throws AppException
     */
    public List<Object[]> getUnUseMemberPackageRedemptionListByPackageId(Long packageId) throws AppException;
  /**
   * 
   * @Date        :      Nov 15, 2015
   * @param dto
   * @return
   * @throws AppException
   */
    public MarsEligibilityDto getMarsEligibilityByItemId(Long ticketLineid,ItemTypeInfoDto dto) throws AppException;
    
    /**
     * 
     * @Date        :      Nov 15, 2015
     * @param dto
     * @return
     * @throws AppException
     */
      public MarsEligibilityDto getMarsEligibilityByItemIdWithGroup(Long ticketLineid,ItemTypeInfoDto dto) throws AppException;
    
    public List<Object[]> getNumberAboutMessage(Long dealerId, String date) throws AppException;
    
    public List<Object[]> getUnUseMemberPackageRedemptionCount(Long packageRedemptionId) throws AppException;

}
